from openai import OpenAI
import sys
import os

# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

from config_reader import get_siliconflow_config


def chat_with_model(user_input: str, history: list = None, temperature: float = 0.7, system_prompt: str = None) -> str:
    """
    与大模型进行对话的函数

    Args:
        user_input: 用户输入的文本
        history: 历史对话记录列表
        temperature: 温度参数，控制输出的随机性
        system_prompt: 系统提示词

    Returns:
        str: 模型返回的文本
    """

    # 获取Siliconflow配置
    siliconflow_config = get_siliconflow_config()
    
    # 初始化 OpenAI 客户端
    client = OpenAI(api_key=siliconflow_config['api_key'],
                    base_url=siliconflow_config['base_url'])

    # 初始化历史记录
    if history is None:
        history = []

    # 构建消息列表
    messages = []

    # 添加系统提示词(如果有)
    if system_prompt:
        messages.append({"role": "system", "content": system_prompt})

    # 添加历史对话
    for msg in history:
        messages.append(msg)

    # 添加当前用户输入
    messages.append({"role": "user", "content": user_input})

    # 调用API获取响应
    response = client.chat.completions.create(
        model="Qwen/Qwen3-8B",
        messages=messages,
        temperature=temperature
    )

    # 返回模型回复的文本
    return response.choices[0].message.content


print(chat_with_model("你好哇"))
